package com.demo.dao.user;

import com.demo.entity.user.User;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.stereotype.Repository;

import javax.annotation.Resource;

/** http://www.cnblogs.com/wangmingshun/p/5674633.html
 * 2、采用接口org.apache.ibatis.session.SqlSession的实现类org.mybatis.spring.SqlSessionTemplate。
 　　mybatis中, sessionFactory可由SqlSessionFactoryBuilder.来创建。MyBatis-Spring 中，使用了SqlSessionFactoryBean来替代。SqlSessionFactoryBean有一个必须属性dataSource，另外其还有一个通用属性configLocation（用来指定mybatis的xml配置文件路径）。
 spring-mybatis.xml

 */
@Repository
public class UserDao1 {

    /*
     在spring-mybatis.xml中配置
     */
    @Resource
    private SqlSessionTemplate sqlSessionTemplate;

    public User findUser(int id) {
        /*
        这样其实也是从mapper的配置文件中查找到sql再去执行,
        下面是从配置文件中查找到命名空间是 com.demo.dao.user.UserDao 的配置文件中(可能是多个或一个),
        再查找id是findUser的sql
        这种方式优点是可以写

         */
//        return sqlSessionTemplate.selectOne(this.getClass().getName() + ".findUser", 1);
        return sqlSessionTemplate.selectOne(this.getClass().getPackage().getName()
                +".UserDao" + ".findUser", id);
    }

}
